<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    <div class="box"></div>
</body>
<script>

    // 原型链
    // 所有的对象都具有一个内置属性__proto__，作为自身的原型链指针

    // 将对象的原型链指向函数的prototype

    // const obj = {msg:"hello"}
    // obj.__proto__.msg = "world";
    // console.log(obj);
    // console.log(obj.__proto__);
    // console.log(obj.msg)

    // 原型链是什么

    // 原型链规则（就近原则）

    // 对象在使用某一个属性或方法时，先在自身查找，找不到，就顺着__proto__依次查找，任意一层找到了，就使用，直到顶层，还没有找到，抛出undefined。

    // const arr = [];
    // console.log(arr);
    // console.log(arr.push);

    const box = document.querySelector(".box")

    console.log(box);

    console.dir(box);

    // 所有对象的顶层原型链对象，必然是，Object.prototype

    Object.prototype.xxx = "千锋牛逼!"

    console.log(box.xxx)

    const arr = []
    console.log(arr.xxx)

    const d = new Date()
    console.log(d.xxx)

    const reg = /a/
    console.log(reg.xxx)

    const str = new String('hello')
    console.log(str.xxx)

</script>
</html>